#include "mculib_gpio.h"



void mculib_gpio_init(MCULIB_GPIO_STRUCT *io)
{
    rcu_periph_clock_enable(io->rcu);
    gpio_mode_set(io->gpio_periph,io->mode,io->pull_up_down,io->pin);
    gpio_output_options_set(io->gpio_periph,io->otype,io->speed,io->pin);
}

void mculib_gpio_reset(MCULIB_GPIO_STRUCT *io)
{
    gpio_bit_reset(io->gpio_periph,io->pin);
}

void mculib_gpio_set(MCULIB_GPIO_STRUCT *io)
{
    gpio_bit_set(io->gpio_periph,io->pin);
}

void mculib_gpio_not(MCULIB_GPIO_STRUCT *io)
{
    gpio_bit_write(io->gpio_periph,io->pin,!gpio_input_bit_get(io->gpio_periph,io->pin));
}

uint8_t mculib_gpio_get(MCULIB_GPIO_STRUCT *io)
{
    return gpio_input_bit_get(io->gpio_periph,io->pin);
}




